This article provides basic feature comparison between some of the JavaScript-based source code editors available today. This article is not all-inclusive or necessarily up-to-date.
Contents |
Editor | Site | Latest version | Style / Clone of | Cost (US$) | Software license | Open source | Browser compatibility |
---|---|---|---|---|---|---|---|
Ace (editor) | Home, Demo | 0.2.0, 2011-08-09 | Emacs / regular textarea | Free | Mozilla tri-license ( MPL, GPL, LGPL) | Yes | Firefox 3.5+, Safari 4+, Chrome, IE 9+ |
CodeMirror | Home, Demo | 2.15, 2011-09-26 | Emacs / regular textarea | Free | MIT-like license | Yes | Firefox 2+, Chrome, Safari 3+, Internet Explorer 6+, Opera 9+ (with some key-handling problems on OS X)[1] |
CodePress | dead home page, Demo, SourceForge | 0.9.6, 2007-09-26 | Microsoft Visual Studio | Free | LGPL | Yes | ? |
CodeTextArea | Home page, Demo, Experimental demo | Jun. 2009. | Microsoft Visual Studio | Free | BSD license | Yes | ? |
EditArea | Home, Demo | 0.8.2, 2010-01-14 | Microsoft Visual Studio | Free | LGPL | Yes | IE 6+, Firefox 1.5+, Safari 3+, Opera 9+ and Chrome[2] |
Helene | Home, Demo | 0.9, unknown release date | Microsoft Visual Studio | Free | GPL | Yes | |
Markitup | Home, Demo | 1.1.6, 2010-01-12 | markup editor, no syntax highlight | Free | MIT, GPL | Yes | IE 6 & 7, Firefox 2 & 3, Safari 3.1, Opera 9+[3] |
9ne | Home Page | ? | emacs | Free | GPL | Yes | |
jsvi | Home Page | ? | vi | Free | GPL | Yes | |
Ymacs | Home, Demo | 0.4, 2010-Jan-17 | emacs | Free | BSD-like license | Yes | Firefox, Chrome, Safari |
MDK-Editor | Home Page | 2.10, 2008 | Microsoft Visual Studio | Depends on the use | Dual license | Code is readable | tested to work on: IE 6, 7 - Firefox 2, 3 - Chrome |
Mozilla Skywriter | Home, Demo | 0.9a1, 2010-06-29 | Emacs / regular textarea | Free | MPL | Yes | Firefox 3.5+, Safari 4+, Chrome |
Feature testing was performed with Firefox 3.0.6 against the current demo version, and results may not match those in other browsers or downloadable versions.
Feature | CodeMirror | CodePress | CodeTextArea | EditArea | Helene | markItUp! | MDK-Editor | Mozilla Skywriter |
---|---|---|---|---|---|---|---|---|
Implementation | nestable full parsers | pattern-based parser | parsers | |||||
Syntax highlight | JS, CSS, XML, mixed mode, PHP, SPARQL; community-extended with new parsers: Python, Lua, Ruby | limited mixed mode: HTML + JavaScript (no CSS), PHP + HTML (no JavaScript or CSS), Java, Perl, SQL | only keywords | only one language at a time: Perl, PHP, CSS, Javascript, Python, HTML, XML, VB, C, CPP, SQL, Pascal, Basic, Brainf*ck | PHP | No | mixed mode: PHP + HTML + JavaScript + CSS, single-mode: PHP, Javascript, CSS, XML; extensible | Yes |
Syntax checking | Some | No | No | HTML, JavaScript (using JSLint) | HTML, JavaScript (using JSLint) | |||
Tab support | Yes | Some | Yes | Yes | Yes | |||
Indent, new line keeps level | Yes | very limited | No | Yes | N/A (can't press Enter) | No | Yes | optional setting that is off by default |
Indent, syntax | Yes | No | No | Yes | ||||
Indent, selected block | either automatically, or block-level indent/unindent | No | yes, including Shift+Tab | yes, including Shift+Tab and using context menu | yes, including Shift+Tab and using context menu | |||
Bracket matching | Yes | an implementation exists with mouse-hover bracket matching | Ctrl+B; no angle bracket matching | No | matching bracket ([{<>}]) always highlighted | can write your own plugin for it | ||
XML matching tag highlight | No | No | Yes | can write your own plugin for it | ||||
Code folding | Some[4] | No | No | No | No | No | No | No |
Code snippets | can be done though API | type 'for' or 'if' then Tab | No | Yes | No | Yes | JavaScript | No |
Code suggestion | example | No | yes | No | CSS, HTML, JavaScript) | No | ||
Toggle syntax highlight on/off | Yes | last example in demo | N/A | textmode | No | |||
Keyboard shortcuts | can be added through API | some common used: Ctrl+f, Ctrl+g,Ctrl+z,Ctrl+y | Yes | All key combos (except F1 in IE7) can be bound to shortcuts | All Common Shortcuts & Custom Keybindings | |||
Line numbers | Yes | Yes | Yes | Yes | Yes | No | supports mouse selection | Yes |
Search & replace | via API | No | toolbar button | has API for the studio | regex supported | |||
Spell checking | No | browser-based | none | browser-based | none | browser-based | No | No |
Toolbar | No | No | Yes | No | Yes | No | But command line console | |
Visual styling | font-type and font-size | 5 styles to choose from, having 2 font-sizes | Fully theme-able | |||||
Undo/Redo | Yes | Yes | Yes | Differential Undo | Yes |
Below is a list of projects based on each engine.